package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 预约信息对象 appointments
 * 
 * @author ruoyi
 * @date 2025-06-27
 */
public class Appointments extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预约ID */
    private Long id;

    /** 患者ID */
    @Excel(name = "患者ID")
    private Long patientId;

    /** 就诊医院 */
    @Excel(name = "就诊医院")
    private String hospital;

    /** 医院地址 */
    @Excel(name = "医院地址")
    private String hospitalAddress;

    /** 就诊科室 */
    @Excel(name = "就诊科室")
    private String department;

    /** 接诊医生ID */
    @Excel(name = "接诊医生ID")
    private Long doctorId;

    /** 医生职称 */
    @Excel(name = "医生职称")
    private String doctorTitle;

    /** 挂号类型（专家号等） */
    @Excel(name = "挂号类型", readConverterExp = "专=家号等")
    private String bookingType;

    /** 门诊时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "门诊时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date visitDate;

    /** 候诊时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "候诊时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date visitTime;

    /** 挂号费 */
    @Excel(name = "挂号费")
    private BigDecimal bookingFee;

    /** 预约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bookingTime;

    /** 就诊状态 */
    @Excel(name = "就诊状态")
    private String status;

    /** 取消原因 */
    @Excel(name = "取消原因")
    private String cancelReason;


    /** 取消时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cancelTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setPatientId(Long patientId) 
    {
        this.patientId = patientId;
    }

    public Long getPatientId() 
    {
        return patientId;
    }

    public void setHospital(String hospital) 
    {
        this.hospital = hospital;
    }

    public String getHospital() 
    {
        return hospital;
    }

    public void setHospitalAddress(String hospitalAddress) 
    {
        this.hospitalAddress = hospitalAddress;
    }

    public String getHospitalAddress() 
    {
        return hospitalAddress;
    }

    public void setDepartment(String department) 
    {
        this.department = department;
    }

    public String getDepartment() 
    {
        return department;
    }

    public void setDoctorId(Long doctorId) 
    {
        this.doctorId = doctorId;
    }

    public Long getDoctorId() 
    {
        return doctorId;
    }

    public void setDoctorTitle(String doctorTitle) 
    {
        this.doctorTitle = doctorTitle;
    }

    public String getDoctorTitle() 
    {
        return doctorTitle;
    }

    public void setBookingType(String bookingType) 
    {
        this.bookingType = bookingType;
    }

    public String getBookingType() 
    {
        return bookingType;
    }

    public void setVisitDate(Date visitDate) 
    {
        this.visitDate = visitDate;
    }

    public Date getVisitDate() 
    {
        return visitDate;
    }

    public void setVisitTime(Date visitTime) 
    {
        this.visitTime = visitTime;
    }

    public Date getVisitTime() 
    {
        return visitTime;
    }

    public void setBookingFee(BigDecimal bookingFee) 
    {
        this.bookingFee = bookingFee;
    }

    public BigDecimal getBookingFee() 
    {
        return bookingFee;
    }

    public void setBookingTime(Date bookingTime) 
    {
        this.bookingTime = bookingTime;
    }

    public Date getBookingTime() 
    {
        return bookingTime;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setCancelReason(String cancelReason) 
    {
        this.cancelReason = cancelReason;
    }

    public String getCancelReason() 
    {
        return cancelReason;
    }

    public void setCancelTime(Date cancelTime) 
    {
        this.cancelTime = cancelTime;
    }

    public Date getCancelTime() 
    {
        return cancelTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("patientId", getPatientId())
            .append("hospital", getHospital())
            .append("hospitalAddress", getHospitalAddress())
            .append("department", getDepartment())
            .append("doctorId", getDoctorId())
            .append("doctorTitle", getDoctorTitle())
            .append("bookingType", getBookingType())
            .append("visitDate", getVisitDate())
            .append("visitTime", getVisitTime())
            .append("bookingFee", getBookingFee())
            .append("bookingTime", getBookingTime())
            .append("status", getStatus())
            .append("cancelReason", getCancelReason())
            .append("cancelTime", getCancelTime())
            .append("remark", getRemark())
            .toString();
    }
}
